#include "Inventory.hh"
#include <iostream>

// 向背包添加物品
void Inventory::addItem(const Item& item) {
    items_.push_back(item);
}

// 从背包移除指定ID的物品
void Inventory::removeItem(int id) {
    for (auto it = items_.begin(); it != items_.end(); ++it) {
        if (it->getID() == id) {
            items_.erase(it);
            return;
        }
    }
}

// 显示背包中的所有物品
void Inventory::showItems() const {
    if (items_.empty()) {
        std::cout << "Inventory is empty." << std::endl;
        return;
    }

    std::cout << "Inventory items:" << std::endl;
    for (const auto& item : items_) {
        std::cout << "ID: " << item.getID() << " Name: " << item.getName() 
                  << " Effect: " << item.getEffect() << " Value: " << item.getValue() << std::endl;
    }
}

// 查找指定ID的物品并返回指针
Item* Inventory::findItem(int id) {
    for (auto& item : items_) {
        if (item.getID() == id) {
            return &item;
        }
    }
    return nullptr;
}

// 检查背包是否为空
bool Inventory::isEmpty() const {
    return items_.empty();
}